import java.util.Arrays;
import java.util.Scanner;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: DELL
 * Date: 2022-09-09
 * Time: 22:43
 */


public class Test_0909 {

    //移除数组中某一所有元素
    public static int removeElement1(int[] nums, int val) {
        int count = 0;
        //增强for循环 将nums中得每一个元素一次赋值给num
        for (int num : nums) {
            //判断当前nums赋值给num得元素是否为val
            if (num != val) {
                nums[count] = num;
                //计数器
                count++;
            }
        }
        return count;
    }

    public static int removeElement2(int[] nums, int val) {
        int count = 0;
        for (int i = 0; i < nums.length; i++) {
            if (nums[i] == val) {
                count++;
            } else {
                nums[i - count] = nums[i];
            }
        }
        return nums.length - count;
    }


    //在原数组中移除数组中相同的元素并返回长度
    public static int removeDuplicates(int[] nums) {

        if (nums.length == 0) {
            return 0;
        }
        int count = 1;
        for (int i = 1; i < nums.length; i++) {
            if (nums[i] != nums[i - 1]) {
                //不相等将nums数组内容重置
                nums[count] = nums[i];
                //不相等时计数
                count++;
            }
        }
        return count;
    }


    //合并数组
        public void merge(int[] nums1, int m, int[] nums2, int n) {
            int index = m+n-1; //合并后的数组尾部
            int i = m-1; //nums1 的数组尾部
            int j = n-1; //nums2 的数组尾部

            // nums1 以及 nums2 均有元素，但不知道那个大
            while(i>=0 && j>=0){
                //从末尾开始比较
                if(nums1[i]>=nums2[j]){
                    nums1[index] = nums1[i];
                    index--;
                    i--;
                }else{
                    nums1[index] = nums2[j];
                    index--;
                    j--;
                }
            }

            //特殊情况下，nums1中没有元素，nums2中合并到nums1中
            while(j>=0){
                nums1[index] = nums2[j];
                j--;
                index--;
            }
        }


    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int val = scanner.nextInt();
        int nums[] = {1, 2, 3, 4, 5, 6, 4, 8, 9};
        System.out.println(removeElement1(nums, val));
        int nums1[] = {1, 2, 3, 4, 5, 6, 6, 7, 8};
        System.out.println(removeElement2(nums1, 6));

        System.out.println("====================");
        int nums2[] = {1,2,3,3,4,5,5,6};
        System.out.println(removeDuplicates(nums2));
        System.out.println(Arrays.toString(nums2));
    }
}
